المفتاح
الأجنبي
ميزة
قواعد
البيانات
العلائقية
أنها تعبر عن
العلاقات بين
الجداول
المختلفة
باستخدام البيانات
نفسها. هذا
يعني أنك لست
مضطراً
لاستخدام
وسائل إضافية
لحفظ
العلاقات غير
البيانات
الموجودة أصلاُ
في الجداول.
هذه الوسائل
الإضافية هي
على سبيل
المثال
المؤشرات pointers أو أي
هياكل أخرى
تربط بين
الجداول.
الثمن الذي
تدفعه هو
القليل من
تكرار
البيانات
المقبول، وهو
ثمن يسير لو
تعلم. الآن ما
معنى هذا كله؟
معناه أن
العلاقات بين
الجداول تحفظ
باستخدام
حقول مشتركة
بين هذه
الجداول.
العلاقة بين
جدول العملاء
وجدول
الفواتير هي
حقل (عمود) رقم
العميل الذي
تكرره في
الجدولين
بالطبع؛العلاقة
بين جدول
بيانات
الطلاب وبين
جدول
العلامات هي
حقل رقم قيد
الطالب؛
العلاقة بين
جدول المواد
وبين جدول
العلامات
أيضاً هي حقل
رمز المادة؛
العلاقة بين
جدول
القراءات الشهرية
وبين جدول
بيانات
المشتركين هي
حقل رقم
المشترك؛
العلاقة بين
جدول
الفحوصات
وبين جدول
بيانات
المرضى هي حقل
رقم المريض؛
العلاقة بين
جدول الكتب
وجدول
الناشرين هي
حقل رقم
الناشر،
وهكذا.
في كل
الأمثلة
السابقة،
تلاحظ أنه قد
تم حفظ العلاقة
بين جدولين
بواسطة
المفتاح
الأساسي في
أحد الجدولين.
رقم العميل،
رقم قيد
الطالب، إلى
آخره، كل هذه
مفاتيح
أساسية (قيم
لا تتكرر) في
جدول واحد على
الأقل. هذا
طبيعي، لأنه
لا بد من
تمييز الصفوف
المرتبطة بين
الجدولين،
وقد عرفنا أن
هذا التمييز
هو وظيفة
المفتاح
الأساسي.
المفتاح
الأساسي في
جدول لا تتكرر
قيمه، لكنه في
الجدول
الثاني قد
تتكرر قيمه.
مثلاً، رقم
العميل لا يتكرر
في جدول
العملاء،
لكنه من
الممكن جداً أن
يتكرر في جدول
الفواتير،
لأن العميل
الذي يحترم
نفسه كعميل
سيشتري منك
أكثر من مرة،
وسيحصل على
عدد من
الفواتير. إنك
لن تسميه
عميلاً بغير
ذلك على كل
حال. لا يمكن
لطالبين أن
يملكا نفس رقم
القيد في جدول
بيانات الطالب،
لكن نفس رقم
قيد طالب
سيتكرر في
جدول العلامات
لأن الطالب
سيأخذ أكثر من
مادة (لا
أظنهم يقسطون
المواد أيضاً
هذه الأيام).
رقم المريض لا
يتكرر في جدول
بيانات
المرضى لكنه
من الممكن أن
يتكرر في جدول
الفحوصات
(سيحرص أصحاب
المستشفى على
أن يتكرر، لا
تقلق)، وهكذا.
إذاً،
فإن المفتاح
الأساسي في
جدول لم يعد
أساسياً في
الجدول
الثاني، لأنه
من الممكن أن
يتكرر، هذا
التكرار
ضروري كما
رأينا من أجل
عكس العلاقات
الفعلية في
الحياة
الواقعية. هذه
الضريبة
يدفعها
المفتاح
الأساسي لأنه
هاجر من جدوله
إلى جدول آخر،
فأصبح
مفتاحاً أجنبياً
في الجدول
الثاني. رقم
العميل في
جدول العملاء
مفتاح أساسي
له هيبته ولا
يمكن أن يتكرر،
لكنه في جدول
الفواتير
مجرد مفتاح
غريب لا يملك
نفس الميزات،
ويمكن أن
يتكرر. هل ذاق
أحدكم من قبل
مرارة
الغربة؟ إن
مفتاحنا الغريب
هذا يتجرعها
في كل مرة
تضيف فاتورة
من أجل عميل.
هذا هو مفهوم
المفتاح
الأجنبي أو
الغريب foreign key الذي
يرتبط
ارتباطاً
وثيقاً
بمفهوم
العلاقات بين
الجداول.
الخلاصة أن
المفتاح
الأجنبي (أو
الغريب أو
الخارجي،
تعددت
الأسماء
والغربة
واحدة) هو
مفتاح أساسي
في جدول آخر،
وهو وسيلة
الربط بين
الجدولين. لاحظ
أن هذا الحقل
(أو مجموعة
الحقول) مكرر
في جدولين،
لكن لا بد من
هذا لحفظ
العلاقة كما
أفضنا.